/**
 * Created by Administrator on 2015/12/4.
 */
/** node 除了可以通过 环境变量的方式与子进程进行通信 还可以通过传递的方式与子进程进行通信 */
// 导入child_process 模块中进行定义的spawn模块
var spawn = require("child_process").spawn;

// 使用tail -f /var/log/system.log 命令启动子进程
var child = spawn("tail", ['-f', '/var/log/system.log']);
// 这里创建了一个子进程，传递了 -f 后面这些参数，tail  命令会一直进行监听日志，并且将输出的新数据 传递到stdout中，
// spawn 函数会返回一个childprocess对象，该对象是一个句柄，他封装了对实际进程的访问。


// 监听子进程的输出数据
// 任何的一个子进程句柄都有一个属性 stdout 他以流的方式进行标准输出可以在流上进行绑定事件，

// 打印数据到控制台
child.stdout.on("data", function (data) {
    console.log(data);
});

// 监听错误的数据流  错误日志 例如程序没有找到 文件路径 等错误会在这个错误输出流里面输出
child.stderr.on("data", function (data) {
    console.log(data);
});

